# -*- coding: utf-8 -*-
%%HTML
<script src="require.js"></script>
# Importar librerÃas
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.pyplot import figure
import plotly.express as px
import seaborn as sns
import plotly.graph_objects as go
import plotly.io as pio
pio.renderers.default='notebook'
from google.colab import drive
drive.mount('/content/drive/')
%cd /content/drive/My Drive/3BIO-Cluster-DataAnalysis
%ls
df = pd.read_csv("Cluster.cluster.csv")
df
df.head(5)
df.tail(5)
df.describe()
df.sort_values
"""### Conocer estructura del DataFrame:"""
type(df)
type(df["articulos"])
df.columns
# Nombres de Ãndices.
df.index
#list(df.index)
# Imprimir los tipos de datos por columna (o por variable).
print(df.dtypes)
# Cantidad de columnas e imprimir su valor columnas
n_col=len(df.columns)
print("Cantidad de columnas: ",n_col )
# La Cantidad total de registros (filas)
n_reg= len(df.index)
print("Cantidad de registros : ", n_reg)
# Cantidad de cantidad de registros completos (sin los valores NA).
reg_com=len(df.dropna())
print("Registros completos sin NA", reg_com)
# Cantidad total de registros incompletos (filas con valores NaN).
reg_incom = n_reg - reg_com
print("Cantidad de registros incompletos: ", reg_incom)
# Clcular la cantidad de registros completos por variable.
nr_com= df.count()
print("Cantidad de registros completos por variable:\n ",nr_com)
# Cantidad de registros incompletos por variable.
print("Cantidad de registros incompletos por variable:")
print(n_reg - nr_com)
# Describir los valores estadÃsticos del DataFrame depurado.
df.describe()
df.plot()
df
# Hacer estadÃsticas del cluster
df['Cluster'].describe()
df.columns
generacion = df.groupby('Cluster').sum().reset_index()[['Cluster','articulos','capitulos', 'innovaciones', 'libros', 'softwares']]
generacion[['articulos','capitulos', 'innovaciones', 'libros', 'softwares']]=generacion[['articulos','capitulos', 'innovaciones', 'libros', 'softwares']].div(generacion[['articulos','capitulos', 'innovaciones', 'libros', 'softwares']].sum(axis=1), axis=0).round(4) * 100
generacion
fig = px.bar(generacion, x="Cluster", y =['articulos','capitulos', 'innovaciones', 'libros', 'softwares'], title="Generacion de nuevo conocimiento")
fig.show()
instit = df.groupby('Cluster').sum().reset_index()[['Cluster','trabajos_grado', 'integrantes', 'doctorado', 'maestria','Especializacion', 'pregrado']]
instit[['trabajos_grado', 'integrantes', 'doctorado', 'maestria','Especializacion', 'pregrado']]=instit[['trabajos_grado', 'integrantes', 'doctorado', 'maestria','Especializacion', 'pregrado']].div(instit[['trabajos_grado', 'integrantes', 'doctorado', 'maestria','Especializacion', 'pregrado']].sum(axis=1), axis=0).round(4) * 100
instit
fig = px.bar(instit, x="Cluster", y =['trabajos_grado', 'integrantes', 'doctorado', 'maestria','Especializacion', 'pregrado'], title="Clasificación Acádemica")
fig.show()
investigadores = df.groupby('Cluster').sum().reset_index()[['Cluster', 'Investigador_Asociado','Investigador_Emerito', 'Investigador_Junior', 'Investigador Senior']]
investigadores[['Investigador_Asociado','Investigador_Emerito', 'Investigador_Junior', 'Investigador Senior' ]]=investigadores[['Investigador_Asociado','Investigador_Emerito', 'Investigador_Junior', 'Investigador Senior',]].div(investigadores[['Investigador_Asociado','Investigador_Emerito', 'Investigador_Junior', 'Investigador Senior']].sum(axis=1), axis=0).round(4) * 100
investigadores
fig = px.bar(investigadores, x="Cluster", y =['Investigador_Asociado','Investigador_Emerito', 'Investigador_Junior', 'Investigador Senior'], title="Clasificación de Investigadores")
fig.show()
sjr_cluster = df.groupby('Cluster').sum().reset_index()[['Cluster','SJR_Q_Q1','SJR_Q_Q2','SJR_Q_Q3','SJR_Q_Q4' ]]
sjr_cluster[['SJR_Q_Q1','SJR_Q_Q2','SJR_Q_Q3','SJR_Q_Q4' ]]=sjr_cluster[['SJR_Q_Q1','SJR_Q_Q2','SJR_Q_Q3','SJR_Q_Q4']].div(sjr_cluster[['SJR_Q_Q1','SJR_Q_Q2','SJR_Q_Q3','SJR_Q_Q4']].sum(axis=1), axis=0).round(4) * 100
sjr_cluster
fig = px.bar(sjr_cluster, x="Cluster", y =['SJR_Q_Q1','SJR_Q_Q2','SJR_Q_Q3','SJR_Q_Q4'], title="Articulos Scimago Ranking SJR Q")
fig.show()
fig = px.bar(sjr_cluster, x="Cluster", y = ['SJR_Q_Q1'], title="Articulos Q1 en SJR",text_auto= True,labels={'x':'Clusters','y':'Articulos'},color_discrete_map={'SJR_Q_Q1':'blue'})
fig.show()
fig = px.bar(sjr_cluster, x="Cluster", y = ['SJR_Q_Q2'], title="Articulos Q2 en SJR",text_auto= True,labels={'x':'Clusters','y':'Articulos'},color_discrete_map={'SJR_Q_Q2':'red'})
fig.show()
fig = px.bar(sjr_cluster, x="Cluster", y = ['SJR_Q_Q3'], title="Articulos Q3 en SJR",text_auto= True,labels={'x':'Clusters','y':'Articulos'},color_discrete_map={'SJR_Q_Q3':'orange'})
fig.show()
fig = px.bar(sjr_cluster, x="Cluster", y = ['SJR_Q_Q4'], title="Articulos Q4 en SJR",text_auto= True,labels={'x':'Clusters','y':'Articulos'},color_discrete_map={'SJR_Q_Q4':'green'})
fig.show()
fig = px.pie(df.groupby('Cluster').size().reset_index(), values=0, names='Cluster', title="Participación de Clusters")
fig.show()
df0 = df[df.Cluster == 0]
df0
fig = px.box(df0, y=['articulos','capitulos','trabajos_grado'], points="all", color="Cluster")
fig.show()
fig = px.box(df0, y=['articulos','capitulos','trabajos_grado'], points="all", color='Instituciones')
fig.show()
fig = px.box(df0, y=['innovaciones', 'libros', 'softwares'], points="all", color="Cluster")
fig.show()
fig = px.box(df0, y=['innovaciones', 'libros', 'softwares'], points="all",color='Instituciones')
fig.show()
df0 = df0.sort_values(by=['articulos'], ascending=False)
df0h = df0.head()
df0h
fig = px.pie(df0, values='articulos', names='Instituciones')
fig.show()
df1 = df[df.Cluster == 1]
df1
fig = px.box(df1, y=['articulos','capitulos','trabajos_grado'], points="all", color="Cluster")
fig.show()
fig = px.box(df1, y=['articulos','capitulos','trabajos_grado'], points="all", color='Instituciones')
fig.show()
fig = px.box(df1, y=['innovaciones', 'libros', 'softwares'], points="all", color="Cluster")
fig.show()
fig = px.box(df1, y=['innovaciones', 'libros', 'softwares'], points="all",color='Instituciones')
fig.show()
df1 = df1.sort_values(by=['articulos'], ascending=False)
df1s = df1.head()
fig = px.pie(df1s, values='articulos', names='Instituciones')
fig.show()
df2 = df[df.Cluster == 2]
df2
fig = px.box(df2, y=['articulos','capitulos','trabajos_grado'], points="all", color="Cluster")
fig.show()
fig = px.box(df2, y=['articulos','capitulos','trabajos_grado'], points="all", color='Instituciones')
fig.show()
fig = px.box(df2, y=['innovaciones', 'libros', 'softwares'], points="all", color="Cluster")
fig.show()
fig = px.box(df2, y=['innovaciones', 'libros', 'softwares'], points="all",color='Instituciones')
fig.show()
df2 = df2.sort_values(by=['articulos'], ascending=False)
df2.head()
df2 = df2.sort_values(by=['articulos'], ascending=False)
df2s = df2.head()
fig = px.pie(df2s, values='articulos', names='Instituciones')
fig.show()
df3 = df[df.Cluster == 3]
df3
fig = px.box(df3, y=['articulos','capitulos','innovaciones','trabajos_grado'], points="all", color="Cluster")
fig.show()
fig = px.box(df3, y=['articulos','capitulos','innovaciones','trabajos_grado'], points="all", color='Instituciones')
fig.show()
fig = px.box(df3, y=['libros', 'softwares'], points="all", color="Cluster")
fig.show()
fig = px.box(df3, y=['libros', 'softwares'], points="all",color='Instituciones')
fig.show()
df3 = df3.sort_values(by=['articulos'], ascending=False)
df3.head()
df3 = df3.sort_values(by=['articulos'], ascending=False)
df3s = df3.head()
fig = px.pie(df3s, values='articulos', names='Instituciones')
fig.show()
df4 = df[df.Cluster == 4]
df4
fig = px.box(df4, y=['articulos','capitulos','innovaciones','trabajos_grado'], points="all", color="Cluster")
fig.show()
fig = px.box(df4, y=['articulos','capitulos','innovaciones','trabajos_grado'], points="all", color='Instituciones')
fig.show()
fig = px.box(df4, y=['libros', 'softwares'], points="all", color="Cluster")
fig.show()
fig = px.box(df4, y=['libros', 'softwares'], points="all",color='Instituciones')
fig.show()
df4 = df4.sort_values(by=['articulos'], ascending=False)
df4.head()
df4 = df4.sort_values(by=['articulos'], ascending=False)
df4s = df4.head()
fig = px.pie(df4s, values='articulos', names='Instituciones')
fig.show()
.
.
.
corr = df.corr()
mask = np.zeros_like(corr)
mask[np.triu_indices_from(mask)] = True
with sns.axes_style("white"):
f, ax = plt.subplots(figsize=(15, 15))
ax = sns.heatmap(corr,mask=mask,square=True,linewidths=.8,cmap="YlGnBu")
"""### Presentacion de los datos
"""
a = df['articulos']
Q1 = df['SJR_Q_Q1']
Q2 = df['SJR_Q_Q2']
Q3 = df['SJR_Q_Q3']
Q4 = df['SJR_Q_Q4']
In = df['Instituciones']
C = df['Cluster']
P = df['pregrado']
i = df['integrantes']
Ij = df['Investigador_Junior']
type(C)
from IPython.core.interactiveshell import SpaceInInput
# Grafico de conjunto de datos de todas las variables
fig = plt.figure(figsize=(10,8), dpi=150)
ax1 = plt.subplot(3,3,1)
ax1.plot(C, Q1, lw='0.75', color='r')
ax1.set_title('Cluster vs Q1')
ax1.set_xlabel('Cluster')
ax1.set_ylabel('Q1')
ax2 = plt.subplot(3,3,2)
ax2.plot(C, Q2, lw='0.75', color='g')
ax2.set_title('Cluster vs Q2')
ax2.set_xlabel('Cluster')
ax2.set_ylabel('Q2')
ax3= plt.subplot(3,3,3)
ax3.plot(C, Q3, lw='0.75', color='b')
ax3.set_title('Cluster vs Q3')
ax3.set_xlabel('Cluster')
ax3.set_ylabel('Q3')
ax4 = plt.subplot(3,3,4)
ax4.plot(C, Q4, lw='0.75', color='c')
ax4.set_title('Cluster vs Q4')
ax4.set_xlabel('Cluster')
ax4.set_ylabel('Q4')
#ax5 = plt.subplot(3,3,5)
#ax5.plot(a, In, lw='0.75', color='m')
#ax5.set_title('Instituciones con mas articulos')
#ax5.set_xlabel('Articulos')
#ax5.set_ylabel('Instituciones')
# ax6 = plt.subplot(3,3,6)
# ax6.plot(i, Ij, lw='1.50', color=[0.2,0.25,1.0])
# ax6.set_title('Investigadores Jr entre integrantes')
# ax6.set_xlabel('Integrantes')
# ax6.set_ylabel('Investigadores Jr')
# Prevenir la superposicion de los titulos de subplots con los ejes contiguos
plt.tight_layout()
fig.subplots_adjust(top=0.90)
plt.show()
#%%shell
#jupyter nbconvert --to html /EDA_Clusters_3BIO.ipynb